﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Csla;
using Csla.Data;
using DemoCSLA.Libreria.Editables;
using Csla.Tools;
using System.Data;
using DemoCSLA.DalLinq;

namespace DemoCSLA.Libreria.SoloLectura
{

    //******************************************
    //Clase generada por un Snippet de Erick Orlando © 2010
    //******************************************


    //Agregue aqui las importaciones necesarias

    [Serializable()]
    public partial class FacturaCabeceraInfo : ReadOnlyBase<FacturaCabeceraInfo>
    {

        #region Propiedades públicas

        private static PropertyInfo<string> m_IdFactura = RegisterProperty<string>(c => c.IdFactura);
        public string IdFactura
        {
            get { return GetProperty(m_IdFactura); }
        }

        private static PropertyInfo<string> m_Cliente = RegisterProperty<string>(c => c.Cliente);
        public string Cliente
        {
            get { return GetProperty(m_Cliente); }
        }

        private static PropertyInfo<int> m_Numero = RegisterProperty<int>(c => c.Numero);
        public int Numero
        {
            get { return GetProperty(m_Numero); }
        }

        private static PropertyInfo<int> m_Serie = RegisterProperty<int>(c => c.Serie);
        public int Serie
        {
            get { return GetProperty(m_Serie); }
        }

        private static PropertyInfo<DateTime> m_Fecha = RegisterProperty<DateTime>(c => c.Fecha);
        public DateTime Fecha
        {
            get { return GetProperty(m_Fecha); }
        }

        private static PropertyInfo<Decimal> m_SubTotal = RegisterProperty<Decimal>(c => c.SubTotal);
        public Decimal SubTotal
        {
            get { return GetProperty(m_SubTotal); }
        }

        private static PropertyInfo<Decimal> m_Impuestos = RegisterProperty<Decimal>(c => c.Impuestos);
        public Decimal Impuestos
        {
            get { return GetProperty(m_Impuestos); }
        }

        private static PropertyInfo<Decimal> m_Total = RegisterProperty<Decimal>(c => c.Total);
        public Decimal Total
        {
            get { return GetProperty(m_Total); }
        }

        #endregion //Propiedades públicas

        #region Métodos de instanciación

        private FacturaCabeceraInfo()
        {
            //Constructor Privado
        }

        internal static FacturaCabeceraInfo GetFacturaCabeceraInfo(Factura dr)
        {
            FacturaCabeceraInfo obj = new FacturaCabeceraInfo();
            obj.Fetch(dr);
            return obj;
        }

        private void Fetch(Factura dr)
        {
            LoadProperty(m_IdFactura, dr.IdFacturaCabecera);
            LoadProperty(m_Cliente, string.Format("{0} {1}",
                dr.Cliente.Nombres, dr.Cliente.Apellidos));
            LoadProperty(m_Numero, dr.Numero);
            LoadProperty(m_Serie, dr.Serie);
            LoadProperty(m_Fecha, dr.Fecha);
            LoadProperty(m_SubTotal, dr.SubTotal);
            LoadProperty(m_Impuestos, dr.Impuestos);
            LoadProperty(m_Total, dr.Total);
        }

        #endregion
    }

}
